import { themeColorsToCssVariables } from "@/lib/charts"

const _THEMES = [
  {
    name: "Default",
    id: "default-shadcn",
    colors: {
      "background": "0 0% 100%",
      "foreground": "240 10% 3.9%",
      "card": "0 0% 100%",
      "card-foreground": "240 10% 3.9%",
      "popover": "0 0% 100%",
      "popover-foreground": "240 10% 3.9%",
      "primary": "240 5.9% 10%",
      "primary-foreground": "0 0% 98%",
      "secondary": "240 4.8% 95.9%",
      "secondary-foreground": "240 5.9% 10%",
      "muted": "240 4.8% 95.9%",
      "muted-foreground": "240 3.8% 46.1%",
      "accent": "240 4.8% 95.9%",
      "accent-foreground": "240 5.9% 10%",
      "destructive": "0 84.2% 60.2%",
      "destructive-foreground": "0 0% 98%",
      "border": "240 5.9% 90%",
      "input": "240 5.9% 90%",
      "ring": "240 10% 3.9%",
      "chart-1": "173 58% 39%",
      "chart-2": "12 76% 61%",
      "chart-3": "197 37% 24%",
      "chart-4": "43 74% 66%",
      "chart-5": "27 87% 67%",
    },
    colorsDark: {
      "background": "240 10% 3.9%",
      "foreground": "0 0% 98%",
      "card": "240 10% 3.9%",
      "card-foreground": "0 0% 98%",
      "popover": "240 10% 3.9%",
      "popover-foreground": "0 0% 98%",
      "primary": "0 0% 98%",
      "primary-foreground": "240 5.9% 10%",
      "secondary": "240 3.7% 15.9%",
      "secondary-foreground": "0 0% 98%",
      "muted": "240 3.7% 15.9%",
      "muted-foreground": "240 5% 64.9%",
      "accent": "240 3.7% 15.9%",
      "accent-foreground": "0 0% 98%",
      "destructive": "0 62.8% 30.6%",
      "destructive-foreground": "0 0% 98%",
      "border": "240 3.7% 15.9%",
      "input": "240 3.7% 15.9%",
      "ring": "240 4.9% 83.9%",
      "chart-1": "220 70% 50%",
      "chart-5": "160 60% 45%",
      "chart-3": "30 80% 55%",
      "chart-4": "280 65% 60%",
      "chart-2": "340 75% 55%",
    },
    fontFamily: {
      heading: {
        name: "Inter",
        type: "sans-serif",
      },
      body: {
        name: "Inter",
        type: "sans-serif",
      },
    },
    radius: 0.5,
  },
  {
    name: "Palette",
    id: "default-palette",
    colors: {
      "background": "0 0% 100%",
      "foreground": "240 10% 3.9%",
      "card": "0 0% 100%",
      "card-foreground": "240 10% 3.9%",
      "popover": "0 0% 100%",
      "popover-foreground": "240 10% 3.9%",
      "primary": "240 5.9% 10%",
      "primary-foreground": "0 0% 98%",
      "secondary": "240 4.8% 95.9%",
      "secondary-foreground": "240 5.9% 10%",
      "muted": "240 4.8% 95.9%",
      "muted-foreground": "240 3.8% 46.1%",
      "accent": "240 4.8% 95.9%",
      "accent-foreground": "240 5.9% 10%",
      "destructive": "0 84.2% 60.2%",
      "destructive-foreground": "0 0% 98%",
      "border": "240 5.9% 90%",
      "input": "240 5.9% 90%",
      "ring": "240 10% 3.9%",
      "chart-1": "12 76% 61%",
      "chart-2": "173 58% 39%",
      "chart-3": "197 37% 24%",
      "chart-4": "43 74% 66%",
      "chart-5": "27 87% 67%",
    },
    colorsDark: {
      "background": "240 10% 3.9%",
      "foreground": "0 0% 98%",
      "card": "240 10% 3.9%",
      "card-foreground": "0 0% 98%",
      "popover": "240 10% 3.9%",
      "popover-foreground": "0 0% 98%",
      "primary": "0 0% 98%",
      "primary-foreground": "240 5.9% 10%",
      "secondary": "240 3.7% 15.9%",
      "secondary-foreground": "0 0% 98%",
      "muted": "240 3.7% 15.9%",
      "muted-foreground": "240 5% 64.9%",
      "accent": "240 3.7% 15.9%",
      "accent-foreground": "0 0% 98%",
      "destructive": "0 62.8% 30.6%",
      "destructive-foreground": "0 0% 98%",
      "border": "240 3.7% 15.9%",
      "input": "240 3.7% 15.9%",
      "ring": "240 4.9% 83.9%",
      "chart-1": "220 70% 50%",
      "chart-2": "160 60% 45%",
      "chart-3": "30 80% 55%",
      "chart-4": "280 65% 60%",
      "chart-5": "340 75% 55%",
    },
    fontFamily: {
      heading: {
        name: "Inter",
        type: "sans-serif",
      },
      body: {
        name: "Inter",
        type: "sans-serif",
      },
    },
    radius: 0.5,
  },
  {
    name: "Sapphire",
    id: "default-sapphire",
    colors: {
      "background": "0 0% 100%",
      "foreground": "222.2 84% 4.9%",
      "card": "0 0% 100%",
      "cardForeground": "222.2 84% 4.9%",
      "popover": "0 0% 100%",
      "popoverForeground": "222.2 84% 4.9%",
      "primary": "221.2 83.2% 53.3%",
      "primaryForeground": "210 40% 98%",
      "secondary": "210 40% 96.1%",
      "secondaryForeground": "222.2 47.4% 11.2%",
      "muted": "210 40% 96.1%",
      "mutedForeground": "215.4 16.3% 44%",
      "accent": "210 40% 96.1%",
      "accentForeground": "222.2 47.4% 11.2%",
      "destructive": "0 72% 51%",
      "destructiveForeground": "210 40% 98%",
      "border": "214.3 31.8% 91.4%",
      "input": "214.3 31.8% 91.4%",
      "ring": "221.2 83.2% 53.3%",
      "chart-1": "221.2 83.2% 53.3%",
      "chart-2": "212 95% 68%",
      "chart-3": "216 92% 60%",
      "chart-4": "210 98% 78%",
      "chart-5": "212 97% 87%",
    },
    colorsDark: {
      "background": "240 10% 3.9%",
      "foreground": "0 0% 98%",
      "card": "240 10% 3.9%",
      "card-foreground": "0 0% 98%",
      "popover": "240 10% 3.9%",
      "popover-foreground": "0 0% 98%",
      "primary": "221.2 83.2% 53.3%",
      "primaryForeground": "210 40% 98%",
      "secondary": "210 40% 96.1%",
      "secondaryForeground": "222.2 47.4% 11.2%",
      "muted": "240 3.7% 15.9%",
      "muted-foreground": "240 5% 64.9%",
      "accent": "240 3.7% 15.9%",
      "accent-foreground": "0 0% 98%",
      "destructive": "0 72% 51%",
      "destructiveForeground": "210 40% 98%",
      "border": "240 3.7% 15.9%",
      "input": "240 3.7% 15.9%",
      "ring": "221.2 83.2% 53.3%",
      "chart-1": "221.2 83.2% 53.3%",
      "chart-2": "212 95% 68%",
      "chart-3": "216 92% 60%",
      "chart-4": "210 98% 78%",
      "chart-5": "212 97% 87%",
    },
    fontFamily: {
      heading: {
        name: "Inter",
        type: "sans-serif",
      },
      body: {
        name: "Inter",
        type: "sans-serif",
      },
    },
    radius: 0.5,
  },
  {
    name: "Ruby",
    id: "default-ruby",
    colors: {
      "background": "0 0% 100%",
      "foreground": "240 10% 3.9%",
      "card": "0 0% 100%",
      "cardForeground": "240 10% 3.9%",
      "popover": "0 0% 100%",
      "popoverForeground": "240 10% 3.9%",
      "primary": "346.8 77.2% 49.8%",
      "primaryForeground": "355.7 100% 99%",
      "secondary": "240 4.8% 95.9%",
      "secondaryForeground": "240 5.9% 10%",
      "muted": "240 4.8% 95.9%",
      "mutedForeground": "240 3.8% 45%",
      "accent": "240 4.8% 95.9%",
      "accentForeground": "240 5.9% 10%",
      "destructive": "0 72% 51%",
      "destructiveForeground": "0 0% 98%",
      "border": "240 5.9% 90%",
      "input": "240 5.9% 90%",
      "ring": "346.8 77.2% 49.8%",
      "chart-1": "347 77% 50%",
      "chart-2": "352 83% 91%",
      "chart-3": "350 80% 72%",
      "chart-4": "351 83% 82%",
      "chart-5": "349 77% 62%",
    },
    colorsDark: {
      "background": "240 10% 3.9%",
      "foreground": "0 0% 98%",
      "card": "240 10% 3.9%",
      "card-foreground": "0 0% 98%",
      "popover": "240 10% 3.9%",
      "popover-foreground": "0 0% 98%",
      "primary": "346.8 77.2% 49.8%",
      "primaryForeground": "355.7 100% 99%",
      "secondary": "240 4.8% 95.9%",
      "secondaryForeground": "240 5.9% 10%",
      "muted": "240 3.7% 15.9%",
      "muted-foreground": "240 5% 64.9%",
      "accent": "240 3.7% 15.9%",
      "accent-foreground": "0 0% 98%",
      "destructive": "0 72% 51%",
      "destructiveForeground": "0 0% 98%",
      "border": "240 3.7% 15.9%",
      "input": "240 3.7% 15.9%",
      "ring": "221.2 83.2% 53.3%",
      "chart-1": "347 77% 50%",
      "chart-2": "349 77% 62%",
      "chart-3": "350 80% 72%",
      "chart-4": "351 83% 82%",
      "chart-5": "352 83% 91%",
    },
    fontFamily: {
      heading: {
        name: "Inter",
        type: "sans-serif",
      },
      body: {
        name: "Inter",
        type: "sans-serif",
      },
    },
    radius: 0.5,
  },
  {
    name: "Emerald",
    id: "default-emerald",
    colors: {
      "background": "0 0% 100%",
      "foreground": "240 10% 3.9%",
      "card": "0 0% 100%",
      "cardForeground": "240 10% 3.9%",
      "popover": "0 0% 100%",
      "popoverForeground": "240 10% 3.9%",
      "primary": "142 86% 28%",
      "primaryForeground": "356 29% 98%",
      "secondary": "240 4.8% 95.9%",
      "secondaryForeground": "240 5.9% 10%",
      "muted": "240 4.8% 95.9%",
      "mutedForeground": "240 3.8% 45%",
      "accent": "240 4.8% 95.9%",
      "accentForeground": "240 5.9% 10%",
      "destructive": "0 72% 51%",
      "destructiveForeground": "0 0% 98%",
      "border": "240 5.9% 90%",
      "input": "240 5.9% 90%",
      "ring": "142 86% 28%",
      "chart-1": "139 65% 20%",
      "chart-2": "140 74% 44%",
      "chart-3": "142 88% 28%",
      "chart-4": "137 55% 15%",
      "chart-5": "141 40% 9%",
    },
    colorsDark: {
      "background": "240 10% 3.9%",
      "foreground": "0 0% 98%",
      "card": "240 10% 3.9%",
      "card-foreground": "0 0% 98%",
      "popover": "240 10% 3.9%",
      "popover-foreground": "0 0% 98%",
      "primary": "142 86% 28%",
      "primaryForeground": "356 29% 98%",
      "secondary": "240 4.8% 95.9%",
      "secondaryForeground": "240 5.9% 10%",
      "muted": "240 3.7% 15.9%",
      "muted-foreground": "240 5% 64.9%",
      "accent": "240 3.7% 15.9%",
      "accent-foreground": "0 0% 98%",
      "destructive": "0 72% 51%",
      "destructiveForeground": "0 0% 98%",
      "border": "240 3.7% 15.9%",
      "input": "240 3.7% 15.9%",
      "ring": "142 86% 28%",
      "chart-1": "142 88% 28%",
      "chart-2": "139 65% 20%",
      "chart-3": "140 74% 24%",
      "chart-4": "137 55% 15%",
      "chart-5": "141 40% 9%",
    },
    fontFamily: {
      heading: {
        name: "Inter",
        type: "sans-serif",
      },
      body: {
        name: "Inter",
        type: "sans-serif",
      },
    },
    radius: 0.5,
  },
  {
    name: "Daylight",
    id: "default-daylight",
    colors: {
      "background": "36 39% 88%",
      "foreground": "36 45% 15%",
      "primary": "36 45% 70%",
      "primaryForeground": "36 45% 11%",
      "secondary": "40 35% 77%",
      "secondaryForeground": "36 45% 25%",
      "accent": "36 64% 57%",
      "accentForeground": "36 72% 17%",
      "destructive": "0 84% 37%",
      "destructiveForeground": "0 0% 98%",
      "muted": "36 33% 75%",
      "mutedForeground": "36 45% 25%",
      "card": "36 46% 82%",
      "cardForeground": "36 45% 20%",
      "popover": "0 0% 100%",
      "popoverForeground": "240 10% 3.9%",
      "border": "36 45% 60%",
      "input": "36 45% 60%",
      "ring": "36 45% 30%",
      "chart-1": "25 34% 28%",
      "chart-2": "26 36% 34%",
      "chart-3": "28 40% 40%",
      "chart-4": "31 41% 48%",
      "chart-5": "35 43% 53%",
    },
    colorsDark: {
      "background": "36 39% 88%",
      "foreground": "36 45% 15%",
      "primary": "36 45% 70%",
      "primaryForeground": "36 45% 11%",
      "secondary": "40 35% 77%",
      "secondaryForeground": "36 45% 25%",
      "accent": "36 64% 57%",
      "accentForeground": "36 72% 17%",
      "destructive": "0 84% 37%",
      "destructiveForeground": "0 0% 98%",
      "muted": "36 33% 75%",
      "mutedForeground": "36 45% 25%",
      "card": "36 46% 82%",
      "cardForeground": "36 45% 20%",
      "popover": "0 0% 100%",
      "popoverForeground": "240 10% 3.9%",
      "border": "36 45% 60%",
      "input": "36 45% 60%",
      "ring": "36 45% 30%",
      "chart-1": "25 34% 28%",
      "chart-2": "26 36% 34%",
      "chart-3": "28 40% 40%",
      "chart-4": "31 41% 48%",
      "chart-5": "35 43% 53%",
    },
    fontFamily: {
      heading: {
        name: "DM Sans",
        type: "sans-serif",
      },
      body: {
        name: "Space Mono",
        type: "monospace",
      },
    },
  },
  {
    name: "Midnight",
    id: "default-midnight",
    colors: {
      "background": "240 5% 6%",
      "foreground": "60 5% 90%",
      "primary": "240 0% 90%",
      "primaryForeground": "60 0% 0%",
      "secondary": "240 4% 15%",
      "secondaryForeground": "60 5% 85%",
      "accent": "240 0% 13%",
      "accentForeground": "60 0% 100%",
      "destructive": "0 60% 50%",
      "destructiveForeground": "0 0% 98%",
      "muted": "240 5% 25%",
      "mutedForeground": "60 5% 85%",
      "card": "240 4% 10%",
      "cardForeground": "60 5% 90%",
      "popover": "240 5% 15%",
      "popoverForeground": "60 5% 85%",
      "border": "240 6% 20%",
      "input": "240 6% 20%",
      "ring": "240 5% 90%",
      "chart-1": "359 2% 90%",
      "chart-2": "240 1% 74%",
      "chart-3": "240 1% 58%",
      "chart-4": "240 1% 42%",
      "chart-5": "240 2% 26%",
    },
    colorsDark: {
      "background": "240 5% 6%",
      "foreground": "60 5% 90%",
      "primary": "240 0% 90%",
      "primaryForeground": "60 0% 0%",
      "secondary": "240 4% 15%",
      "secondaryForeground": "60 5% 85%",
      "accent": "240 0% 13%",
      "accentForeground": "60 0% 100%",
      "destructive": "0 60% 50%",
      "destructiveForeground": "0 0% 98%",
      "muted": "240 5% 25%",
      "mutedForeground": "60 5% 85%",
      "card": "240 4% 10%",
      "cardForeground": "60 5% 90%",
      "popover": "240 5% 15%",
      "popoverForeground": "60 5% 85%",
      "border": "240 6% 20%",
      "input": "240 6% 20%",
      "ring": "240 5% 90%",
      "chart-1": "359 2% 90%",
      "chart-2": "240 1% 74%",
      "chart-3": "240 1% 58%",
      "chart-4": "240 1% 42%",
      "chart-5": "240 2% 26%",
    },
    fontFamily: {
      heading: {
        name: "Manrope",
        type: "sans-serif",
      },
      body: {
        name: "Manrope",
        type: "sans-serif",
      },
    },
    radius: 0.5,
  },
] as const

export const THEMES = _THEMES.map((theme) => ({
  ...theme,
  cssVars: {
    light: themeColorsToCssVariables(theme.colors),
    dark: themeColorsToCssVariables(theme.colorsDark),
  },
}))

export type Theme = (typeof THEMES)[number]
